﻿using System;
using System.Collections.Generic;
using ServiceStack.Web;
using YmtAuth.Dto;
using Ymatou.User.Dto.Auth;
namespace YmtAuth.AppService
{
    /// <summary>
    /// 用户认证app service
    /// </summary>
    public interface IAuthAppService
    {
       
        /// <summary>
        /// 登录认证
        /// </summary>       
        /// <returns>登录认证，返回用户ID，异常情况下返回-1,用户不存在返回-2</returns>
        ResponseData<LoginAuthResponseDto2> LoginAuth2(LoginAuthRequestDto dto,IRequest request=null);
        /// <summary>
        /// 用户IP区域认证
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<LoginAuthResponseDto2> AuthIpArea(IpAreaAuthStatusRequestDto dto, IRequest request = null);
        /// <summary>
        /// 用户设备认证
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<LoginAuthResponseDto2> AuthDevice(DeviceAuthStatusRequestDto dto, IRequest request = null);
        /// <summary>
        /// 内部服务请求认证
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<LoginAuthResponseDto2> InternalServiceAuth(LoginAuthRequestDto dto);              
        /// <summary>
        /// logOut
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<SignAuthResponseDto2> Logout(SSOTokenDto dto);
    }
}
